package com.mcxx.modules.minimumliving.service;


import com.mcxx.modules.miniSalvation.family.dto.BankAbutmentDTO;
import com.mcxx.modules.miniSalvation.family.param.SalvationObjectParam;
import com.mcxx.modules.miniSalvation.fundpay.dto.*;
import com.mcxx.modules.miniSalvation.fundpay.entity.FundPayFamilyEntity;
import com.mcxx.modules.miniSalvation.fundpay.entity.FundpayExceptionEntity;
import com.mcxx.modules.miniSalvation.fundpay.param.FundPayFamilyParam;
import com.mcxx.modules.miniSalvation.fundpay.param.FundPayMemberParam;
import com.mcxx.modules.miniSalvation.fundpay.param.FundPayParam;
import com.mcxx.result.BaseResult;
import com.yinhai.ta404.component.audit.vo.ExcelInfo;
import com.yinhai.ta404.core.restservice.requestbean.PageParam;
import com.yinhai.ta404.core.restservice.resultbean.Page;
import com.yinhai.ta404.core.security.vo.UserAccountVo;

import java.util.List;
import java.util.Map;


public interface FundPayService {






    BaseResult<Map<String, List<String>>> delFundPay(List<String> fundPayIdList);


    BaseResult<Map<String, List<String>>> cancelFundPay(List<String> fundPayIdList);


    void confirmFundPay(String fundPayId, UserAccountVo userAccountVo);


    String checkCanSyncFundpayData(String fundPayId);


    String syncFundpayData(String fundPayId);


    Page<FundpayExceptionEntity> getPageFundpayException(String fundPayId, PageParam pageParam);


    void delFundPayObjectList(String fundPayId, List<String> familyIdList);






    void saveCapitalFundPay(CapitalFundPayDTO param, UserAccountVo userAccountVo);


    Page getNoSaveCapitalObjectList(CapitalFundPayDTO capitalFundPayDTO, PageParam pageParam, UserAccountVo userAccountVo);








    void addStandFundPay(StandFundPayDTO standFundPayDTO, UserAccountVo userAccountVo);


    void saveStandObjectList(StandFundPayDTO standFundPayDTO, List<String> orderIdList);


     void saveCapitalFundPayObject(CapitalFundPayDTO capitalFundPayDTO, List<String> orderIdList) ;


    Page getNoSaveStandObjectList(StandFundPayDTO standFundPayDTO, PageParam pageParam, UserAccountVo userAccountVo);







    void addAllowanceFundPay(AllowanceFundPayDTO allowanceFundPayDTO, UserAccountVo userAccountVo);


    void delAllowanceMember(String fundPayId, List<String> memberIdList);


    Page getNoSaveAllowanceMemberList(AllowanceFundPayDTO allowanceFundPayDTO, PageParam pageParam, UserAccountVo userAccountVo);


    void addAllowanceMember(String fundPayId, List<String> orderIdList, List<String> memberIdList);







    void addCustomFundPay(CustomFundPayDTO customFundPayDTO, UserAccountVo userAccountVo);


   void updateCustomMemberFundNumber(String fundPayMemberId, String fundPayFamilyId, String fundPayId, double fundNumber);


    void updateCustomFamilyFundNumber(String fundPayFamilyId, String fundPayId, double fundNumber);


    void addCustomMember(String fundPayId, List<String> orderIdList, List<String> memberIdList);


    void addCustomFamily(String fundPayId, List<String> orderIdList);


    void delCustomFamily(String fundPayId, List<String> familyIdList);


    void delCustomMember(String fundPayId, List<String> memberIdList);


    String verifyConfirmCustom(String fundPayId);


    void confirmCustomFundPay(String fundPayId, UserAccountVo userAccountVo);







    void addFuneralFundPay(FuneralFundPayDTO funeralFundPayDTO, UserAccountVo userAccountVo);



    void delFuneralMember(String fundPayId, List<String> memberIdList);



    void addFuneralMember(String fundPayId, List<String> orderIdList, List<String> memberIdList);






    Page querySelect (FundPayParam param, PageParam pageParam);


    ExcelInfo exportExcelFundPay(String exportType, List<String> orderIdList, FundPayParam param, UserAccountVo accountVo);



    ExcelInfo exportExcelCapitalObjectList(FundPayFamilyParam param, UserAccountVo accountVo);


    ExcelInfo downFuneralMemberList(FundPayMemberParam fundPayMemberParam, UserAccountVo accountVo);


    ExcelInfo exportExcelFundPayMember(String exportType, List<String> orderIdList, FundPayParam param, UserAccountVo accountVo);


    Map<String, String> gainBankInfo(BankAbutmentDTO dto, UserAccountVo userAccountVo);


    Integer confirmFundpayException(List<String> exceptionIds);


    ExcelInfo exportExcel(String fundpayId);

    void addFuneralFundPayOld(FuneralFundPayDTO funeralFundPayDTO, UserAccountVo userAccountVo);


    void delAllowanceFundPayFamily(String fundPayId, List<String> memberIdList);

    void addAllowanceFundPayFamily(String fundPayId, List<String> orderIdList, List<String> familyIdList);

    void updateTableData(String changeData, String fundPayId, String familyId, String memberId);

    void updateRemarkData(String changeData, String fundPayId, String familyId, String memberId);

    List<Map<String,String>> verifyCareStand(UserAccountVo curUser);

    ExcelInfo downFuneralTakePersonList(FundPayMemberParam fundPayMemberParam, UserAccountVo curUserAccount);

    ExcelInfo exportExcelFundPayFamily(String exportType, List<String> idsList, FundPayParam param, UserAccountVo curUserAccount);
}
